home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Pascal Super Library
/
Pascal Super Library (CW International)(1997).bin
/
LIBRARY
/
PBLIB1
/
UNITS
/
MISCOTHR.INC
< prev
next >
Wrap
Text File
|
1994-02-18
|
3KB
|
90 lines
{SECTION ExecuteCommand }
Function ExecuteCommand(cmd : string) : integer;
var err : integer;
CommandComFile : string[50];
begin
err := 0;
CommandComFile := getenv('COMSPEC');
if FileExists(CommandComFile) then
begin
{writeln('Execing [',CommandComFile,'] [',cmd,']');}
SwapVectors;
Exec(CommandComFile,'/C ' + cmd);
SwapVectors;
err := DOSError;
if err = 8 then writeln('EXEC failed 8 (MAKE YOUR HEAP SMALLER!) err= ',err);
end
else begin
writeln('Unable to find program ',CommandComFile);
err := 999;
end;
ExecuteCommand := err;
end;
{SECTION TPC }
Function TPC(fname,options : string; var err : integer) : boolean;
{[EXEC] - Invokes the compiler directly, finds a few errors}
{ Expected errors = -1 -> compile failed, no output file
= 15 -> input file not found
}
var ok : boolean;
line,fn,fn1 : string;
begin
fn := fname;
ok := true;
err := 0;
line := fn + ' '+ options;
if not fileexists(fn) then
begin
err := 15;
ok := false;
end;
fn1 := fn; forceext(fn1,'tpu');
if fileexists(fn1) then erasefile(fn1)
else begin
fn1 := fn; forceext(fn1,'exe');
if fileexists(fn) then erasefile(fn1);
end;
SwapVectors;
exec('c:\bp\bin\tpc.exe',line);
SwapVectors;
if DosError <> 0 then
begin
err := DosError;
ok := false;
end
else begin
fn1 := fn; forceext(fn1,'tpu');
if fileexists(fn1) then
begin
if filedate(fn,'') > filedate(fn1,'') then
begin
err := -1;
ok := false;
end;
end
else begin
fn1 := fn; forceext(fn1,'exe');
if fileexists(fn) then
begin
if filedate(fn,'') > filedate(fn1,'') then
begin
err := -1;
ok := false;
end;
end
else begin
err := -2;
ok := false;
end;
end;
end;
TPC := ok;
end;